<?php

class CursosController extends Zend_Controller_Action
{

    public function init()
    {
	Zend_Loader::loadClass('Cursos');
	Zend_Loader::loadClass('Usuarios');
	Zend_Loader::loadClass('CursoStatus');
	Zend_Loader::loadClass('CursoTarefas');
	Zend_Loader::loadClass('CursoEtapas');
	Zend_Loader::loadClass('Etapas');
	Zend_Loader::loadClass('Tarefas');
	Zend_Loader::loadClass('Status');
    }

    public function indexAction()
    {
        $cursos = new Cursos();
        $this->view->cursos = $cursos->getCustomSelect(null, 'curso');
    }

    public function addAction()
    {
        $form = new Application_Form_Curso();
        $form->submit->setLabel('Adicionar');
        $this->view->form = $form;
        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $mdl_curso_id = (int)$form->getValue('mdl_curso_id');
                $curso_status_id = (int)$form->getValue('curso_status_id');
                $responsavel_id = (int)$form->getValue('responsavel_id');
                $curso = $form->getValue('curso');
                $date = new Zend_Date($form->getValue('data_inicio'), null, 'pt_BR');
                $data_inicio = $date->toString('yyyy-MM-dd');
                $date = new Zend_Date($form->getValue('data_conclusao'), null, 'pt_BR');
                $data_conclusao = $date->toString('yyyy-MM-dd');
                $cursos = new Cursos();
                $cursos->addCurso($mdl_curso_id, $curso_status_id, $responsavel_id, $curso, $data_inicio, $data_conclusao);
                $curso_id = $cursos->getAdapter()->lastInsertId('curso');
                $etapas = new Etapas();
                $etapas = $etapas->fetchAll(null,'ordem');
                $cursoetapas = new CursoEtapas();
                foreach ($etapas as $etapa):
                    $data=array(
                        'curso_id'=>$curso_id,
                        'etapa_id'=>$etapa->id,);
                    $cursoetapas->addCursoEtapa($data);
                endforeach;
                $tarefas = new Tarefas();
                $tarefas = $tarefas->fetchAll();
                $cursotarefas = new CursoTarefas();
                foreach ($tarefas as $tarefa):
                    $cursotarefas->addCursoTarefa(array(
                        'curso_id'=>$curso_id,
                        'etapa_id'=>$tarefa->etapa_id,
                        'tarefa_id'=>$tarefa->id,
                        ));
                endforeach;
                $this->_redirect('index');
            } else {
                $form->populate($formData);
            }
        }
    }

    public function editAction()
    {
        $form = new Application_Form_Curso();
        $form->submit->setLabel('Salvar');
        $this->view->form = $form;
        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $id = (int)$form->getValue('id');
                $mdl_curso_id = (int)$form->getValue('mdl_curso_id');
                $curso_status_id = (int)$form->getValue('curso_status_id');
                $responsavel_id = (int)$form->getValue('responsavel_id');
                $curso = $form->getValue('curso');
                $date = new Zend_Date($form->getValue('data_inicio'), null, 'pt_BR');
                $data_inicio = $date->toString('yyyy-MM-dd');
                $date = new Zend_Date($form->getValue('data_conclusao'), null, 'pt_BR');
                $data_conclusao = $date->toString('yyyy-MM-dd');
                $cursos = new Cursos();
                $cursos->updateCurso($id, $mdl_curso_id, $curso_status_id, $responsavel_id, $curso, $data_inicio, $data_conclusao);
                $this->_redirect('index');
            } else {
                $form->populate($formData);
            }
        } else
        {
            $id = $this->_getParam('id', 0);
            if ($id > 0) {
                $cursos = new Cursos();
                $form->populate($cursos->getCurso($id));
                $locale = new Zend_Locale('pt_BR');
                $data_inicio = $form->getValue('data_inicio');
                if($data_inicio){
                    $date = new Zend_Date($data_inicio, null , $locale);
                    $data_inicio = $date->toString('dd/MM/yyyy', null);
                    $form->getElement('data_inicio')->setValue($data_inicio);
                }
                $data_conclusao = $form->getValue('data_conclusao');
                if($data_conclusao){
                    $date = new Zend_Date($data_conclusao, null , $locale);
                    $data_conclusao = $date->toString('dd/MM/yyyy', null);
                    $form->getElement('data_conclusao')->setValue($data_conclusao);
                }
            }
        }
    }

    public function deleteAction()
    {
        if ($this->getRequest()->isPost())
        {
            $del = $this->getRequest()->getPost('del');
            if ($del == 'Sim') {
                $id = $this->getRequest()->getPost('id');
                $cursos = new Cursos();
                $cursos->deleteCurso($id);
            }
                $this->_redirect('index');
        } else {
            $id = $this->_getParam('id', 0);
            $cursos = new Cursos();
            $this->view->curso = $cursos->getCurso($id);
        }
    }

    public function detalheAction()
    {
        $curso_id = (int)$this->getRequest()->getParam('id');
        $cursos = new Cursos();
        $curso = $cursos->getCurso($curso_id);
        $this->view->curso = $curso;
        $etapas = new Etapas();
        $tarefas = new Tarefas();
        $cursoEtapas = new CursoEtapas();
        $cursoEtapas = $cursoEtapas->getListaEtapas($curso_id);
        $cursoTarefas = new CursoTarefas();
        $string="<ul id='tv_detalhe'  class='filetree'>";
        $ult_etapa=null;
        foreach ($cursoEtapas as $etapa):
            $etapaAtual = $etapas->getEtapa($etapa->etapa_id);
            $string.="<li><span class='folder'><a href='";
            $string.= $this->view->url(array('controller'=>'cursos','action'=>'detalhe-etapa', 'id'=>$etapa->id));
            $string.= "'>".$etapaAtual['etapa']."</a></span>";
            $etapaTarefas = $cursoTarefas->getListaTarefas($curso_id,$etapa->etapa_id);
            $ul=1;
            foreach ($etapaTarefas as $tarefa):
                if($ul==1){$string.="<ul class='file'>"; $ul=2;};
                $tarefaAtual = $tarefas->getTarefa($tarefa->tarefa_id);
                $string .= "<li><span class='file'>".$tarefaAtual['tarefa']."</span></li>";
            endforeach;
            if($ul==2) $string.="</ul>";
            $string.="</li>";
        endforeach;
        $string .= "</ul>";
        $this->view->tarefas = $string;
    }

    public function detalheEtapaAction()
    {
        if ($this->getRequest()->isPost()) {
            $data = $this->getRequest()->getPost();
            $CursoTarefas = new CursoTarefas();
            $CursoTarefas->updateCursoTarefa($data);
        }

        $id = (int)$this->getRequest()->getParam('id');
        $cursoEtapas = new CursoEtapas();
        $cursoEtapa = $cursoEtapas->getCursoEtapa($id);
        $etapas = new Etapas();
        $etapa = $etapas->getEtapa($cursoEtapa->etapa_id);
        $this->view->etapa = $etapa;
        $cursos = new Cursos();
        $curso = $cursos->getCurso($cursoEtapa->curso_id);
        $this->view->curso = $curso;

        $cursoTarefas = new CursoTarefas();
        $cursoTarefas = $cursoTarefas->getListaTarefas($curso['id'],$cursoEtapa->etapa_id);
        $tarefas = new Tarefas();
        $string="<ul id='tv_detalhe' class='filetree'><ul class='file'>";
        $ult_etapa=null;
        foreach ($cursoTarefas as $tarefa):
            $tarefaAtual = $tarefas->getTarefa($tarefa->tarefa_id);
            switch ($tarefa->status_id)
            {
            case 4:
                $status="<img class='concluido' alt='concluido' src='".$this->view->baseUrl()."/images/btn_verde.png' />";
                break;
            case 4:
                $status="<img class='concluido' alt='concluido' src='".$this->view->baseUrl()."/images/btn_verde.png' />";
                break;
            default: 
                $status="";
            }
            $form = new Application_Form_CursoTarefa();
            $form->populate($tarefa->toArray());
            $string .= "<li><span class='file'><a  id='".$tarefaAtual['id']."' class='etapa' href='#'>".$status.$tarefaAtual['tarefa']
                    .= "</a></span><div class='status' id='status_".$tarefaAtual['id']
                    .="'>".$form."</div></li>";
        endforeach;
        $string .= "</ul></ul>";
        $this->view->tarefas = $string;
    }

}

